1. Field of the Invention
The present invention relates generally to a digital communication system. In particular, the present invention relates to an apparatus and method for forwarding voice packets over a network.
2. Description of the Related Art
A voice coder, namely a vocoder is used to reduce the amount of data taken to transmit information in digital voice communications. The vocoder, which is a combination of a voice encoder and a voice decoder, exists between a terminal and a communication system. The voice encoder converts an input Pulse Code Modulation (PCM) voice signal to a very small-size voice packet by using a predetermined coding algorithm. The voice packet is delivered to a destination through the communication system and the voice decoder recovers the voice packet to the original PCM voice signal by using a predetermined algorithm. Under this typical communication environment, voice communications are conducted in the order of input-coding-transmission-decoding-output. Coding-decoding can be repeated many times in a particular communication environment.
Many types of vocoders are available to digital mobile communication systems like Voice over Internet Protocol (VoIP), but different vocoders are not compatible with each other. Some vocoders support generation of voice packets at a plurality of data rates. These vocoders are called variable-rate vocoders. Typical examples of the variable-rate vocoders are Qualcomm Code Excited Linear Prediction (QCELP) and Enhanced Variable Rate Codec (EVRC) used for Code Division Multiple Access (CDMA). The variable-rate vocoders encode a voice signal according to the characteristics of the input voice signal or at a data rate requested by the communication system. With respect to a full rate, QCELP and EVRC can encode voice packets at a rate of ½, ¼ or ⅛.
There are generally two types of terminals in digital communications. One is a packet terminal that includes a vocoder and which transmits/receives voice packets to/from a communication system. A mobile terminal for digital mobile communications is a typical example. The other is a Public Switched Telephone Network (PSTN) terminal connected directly to a PSTN, for voice communications. The PSTN terminal does not have a vocoder and transmits/receives an analog signal to/from the communication system.
In the digital communication system, the transport format of a voice packet is determined according to the types of terminals and the positions and operations of vocoders, and communication performance is correspondingly determined. Best performance can be achieved by appropriately determining the position and operation of at least one vocoder according to the characteristics of two terminals connected for communication and their communication environment. The factors affecting the determination include the types of the terminals, the types of vocoders used in the terminals, packet data rate, transmission or non-transmission of additional data, and transmission or non-transmission of a message.
During communications between a packet terminal and a PSTN terminal, upon receipt of a voice packet from the packet terminal, a voice decoder in a communication system converts the voice packet to a PCM signal and provides it to the PSTN terminal. Upon receipt of a PCM signal from the PSTN terminal, a voice encoder in the communication system converts the PCM signal to a voice packet and provides it to the packet terminal. In the case of transmitting voice information together with a message to the packet terminal, the communication system decreases the data rate of the voice packet, relying on the features of the variable-rate voice encoder and inserts as much of the message as the rate decrease in the voice packet allows, prior to transmission. For this purpose, such a module generates control/signaling messages and adjusts the data rates of voice packets that may reside in the communication system. The packet terminal extracts the voice information and the message separately from the received voice packet and recovers the voice information to the PCM voice signal.
In a CDMA mobile communication system, for example, upon generation of a message to be transmitted to a Mobile Station (MS) on a radio channel, a Base Station (BS) decreases the rate of a voice packet destined for the MS to, for example, ½ and inserts the message in the voice packet. This message transmission scheme is called “Dim and Burst”. In an extreme case, the rate of the voice packet is decreased to zero and only the message is constructed into a packet. This scheme is called “Blank and Burst”. Due to the entire loss of the voice information at a message transmission time point, the Blank and Burst method is inferior to the Dim and Burst method in terms of voice quality.
In communications between two terminals, if each use the same kind of vocoders, the communication system forwards an input voice packet to the peer terminal for normal communications. This is called “Packet Bypass”. However, if the two terminals use different, incompatible kinds of vocoders, the communication system converts an input voice packet appropriately. As described above, if additional data is to be inserted in a voice packet, even when the same kind of vocoders are used, the rate of the voice packet typically must be reduced. Consequently, voice packet conversion is required for transmission.
The steps by which voice packets are transmitted and processed depend on a communication environment in the digital communication system. Traditionally, voice packets are forwarded in the following way.
FIG. 1 illustrates a configuration of a typical PSTN-based voice packet forwarding system.
Referring to FIG. 1, when a call is set up between a first packet terminal 110 and a PSTN terminal 102, a voice encoder of the first packet terminal 110 converts an input voice signal to a voice packet 112. A first voice decoder 114 generates a PCM voice signal 116 from the voice packet 112 by using the same voice decoding scheme as used in the first packet terminal 110. A PSTN switch (not shown) in a network 100 converts the PCM voice signal 116 to an analog signal 104 and provides the analog signal 104 to the PSTN terminal 102.
The PSTN switch of the network 100 converts an analog signal 106 received from the PSTN terminal 102 to a PCM signal 118. A first voice encoder 120 converts the PCM signal 118 to a voice packet 122 by using the same voice coding scheme as used in the first packet terminal 110.
If there is no need for inserting additional data such as a control/signaling message, the voice packet 122 bypasses a first data inserter 124, thus maintaining its data rate. This voice packet 126 with the same data rate, is provided to the first packet terminal 110. However, in the presence of additional data to be transmitted to the first packet terminal 110, the first voice encoder 120 generates the voice packet 122 at a decreased rate. The first data inserter 124 inserts the additional data in the voice packet 122 and transmits the resulting voice packet 126 to the first packet terminal 110. The first packet terminal 110 converts the voice packet 122 to a PCM signal by using its voice decoding operation and outputs the PCM signal audibly to a user.
Regarding packet transmission and processing between the first packet terminal 110 and a second packet terminal 130, the first voice decoder 114 converts the voice packet 112 from the first packet terminal 110 to the PCM signal 116 and transmits the PCM signal 116 to a second voice encoder 136 through the network 100. As the PCM signal 116 passes through the network 100, it becomes a PCM signal 134. The second voice encoder 136 generates a voice packet 138 from the PCM signal 134 by using the same voice encoding scheme as used in the second packet terminal 130. A second data inserter 140 generates a voice packet 142 by inserting additional data in the voice packet 138 and transmits the voice packet 142 to the second packet terminal 130. Communications in the direction from the second packet terminal 130 to the first packet terminal 110 are conducted in substantially the same manner through a second voice decoder 132, the network 100, the first voice encoder 120, and the first data inserter 124.
As described above, coding-decoding is repeated in the process of input-coding-decoding-coding-decoding-output in a total single direction communication path. This is called Tandem Coding. In contrast, one coding-decoding is performed for communications between the first packet terminal 110 and the PSTN terminal 102.
While the typical system configuration illustrated in FIG. 1 is applicable to all communication environments, it suffers from communication quality degradation caused by information loss from repeated coding-decoding operations. To solve this problem, another system configuration has been developed and is illustrated in FIG. 2.
FIG. 2 illustrates the configuration of a typical voice packet forwarding system supporting packet bypass. As illustrated in FIG. 2, if first and second packet terminals 202 and 210 use the same type of vocoders, each of them can interpret voice packets received from the peer terminal. Hence, no particular processing is needed for packet transmission between the first and second packet terminals 202 and 210.
Referring to FIG. 2, a voice packet from the first packet terminal 202 is directly provided to a network 200 by use of a bypass 204. The network 200 forwards the voice packet to the peer party in substantially the same manner. The voice packet is output from the network 200 by use of a bypass 214. If the bypassed voice packet from the network 200 has a full rate and a second data inserter 216 is to insert additional data in the voice packet, the second data inserter 216 deletes voice information in the voice packet and forms a new voice packet with the additional data only by using a Blank and Burst method.
In the opposite direction, a voice packet from the second packet terminal 210 is directly provided to the network 200 by use of a bypass 212. The network 200 forwards the voice packet to a first data inserter 208 by use of a bypass 206. Similarly, the first data inserter 208 forwards the bypassed voice packet to the first packet terminal 202, or when needed, generates a new voice packet with additional data only, and transmits the new voice packet to the first packet terminal 202.
Since one coding-decoding is sufficient in the system illustrated in FIG. 2, voice quality is improved relative to that in the system of FIG. 1. Forwarding a voice packet without any further processing is called “Packet Bypass” or “Tandem-Free Operation”.
Despite the benefit of improved voice quality between packet terminals, the above system has many constraints in its applicability. If the two packet terminals 202 and 210 use different kinds of vocoders, the Tandem-Free Operation is not viable. In addition, since Dim and Burst is used in the case of decreasing a packet rate to insert additional data during packet transmission, voice quality is decreased.
FIG. 3 illustrates the configuration of another typical voice packet forwarding system using a packet converter and a bypass instead of a voice decoder and a voice encoder.
Referring to FIG. 3, during communications from a first packet terminal 222 to a second packet terminal 230, a voice packet from the first packet terminal 222 is provided to a second packet converter 236 through a bypass 224 and a network 220. The second packet converter 236 converts the voice packet in substantially the same manner as used in a vocoder of the second packet terminal 230 or at a system-requested data rate. If data is to be inserted, a second data inserter 234 inserts the data in the converted voice packet. An empty space for the data insertion is prepared by the second packet converter 236. The voice packet from the second data inserter 234 is then forwarded to the second packet terminal 230.
In the opposite direction, a voice packet from the second packet terminal 230 is provided to the network 220 through a bypass 232. The network 220 forwards the voice packet to a first data inserter 228 through a first packet converter 226. The first data inserter 228, when needed, inserts additional data in the voice packet and provides it to the first packet terminal 222. An empty space for the data insertion is prepared by the first packet converter 226.
If the two terminals 222 and 230 use the same kind of vocoders and no rate conversion is required, the packet converters 226 and 236 function virtually as bypasses without any practical packet conversion. Voice packet forwarding performance is determined predominantly by the performance of the packet converters 226 and 236, and the tandem operation as illustrated in FIG. 1 is avoided. Therefore, the system of FIG. 3 outperforms that of FIG. 1. Furthermore, additional data transmission is possible in the Dim and Burst manner by using rate conversion in the packet converters 226 and 236.
However, voice packet conversion involves re-search or quantization of many voice parameters that determine the characteristics of an input voice signal beyond simple bit reordering or format conversion. Therefore, the voice packet conversion requires very complex mathematical computations.
In this regard, the above-described voice packet forwarding methods have their own drawbacks. The communication system illustrated in FIG. 1 is most typical and applicable to any communication environment, but faces the problem of voice quality degradation caused by tandem coding. Despite increased voice quality through voice packet bypass compared to the communication system of FIG. 1, the applicability of the communication system illustrated in FIG. 2 is limited to an environment where two terminals use the same kind of vocoders. In addition, when additional data such as a control/signaling message is generated, voice quality is decreased because of the Blank and Burst method used.
While the system illustrated in FIG. 3 is effective in solving the problems of the systems illustrated in FIGS. 1 and 2, packet conversion is performed on all possible combinations of different voice packets for every kind of vocoder available for communications, and rate conversion is also needed for each variable-rate vocoder. Moreover, in the case of using a new kind of vocoder, the system configuration and operation needs to be modified to support packet conversion between the new kind of vocoder and every existing vocoder.
Once one of the schemes illustrated in FIGS. 1, 2 and 3 is chosen at a call connection according to a communication environment, the chosen scheme is kept unchanged during the call. That is, the voice packet forwarding schemes are mutually independent without compatibility between them. However, it may occur that a communication environment for a packet terminal is changed during a call due to handoff in mobile communications, for example, such that the type of vocoder is changed or the data rate of a channel is restricted. In this case, the use of the above described technology brings distinctive interruptions when the environment is changed, thereby decreasing voice quality and creating noise.
Accordingly, there exists a need for developing a voice packet forwarding system and method that ensures excellent performance against frequent changes in communication environments.